/*
 * UVa 1584
 * 环状序列
 */
// 长度为 n 的环状串有 n 种表示法，分别为从某个位置开始顺时针得到。
// 例如下图的环状串 有10种表示：
// CGAGTCAGCT，GAGTCAGCTC，AGTCAGCTCG 等。
/*
    C
 T     G
C       A
G       G
 A     T
    C
*/
// 在这些表示法中，字典序最小的称为“最小表示”。
// 输入一个长度为 n（n <= 100）的
// 环状 DNA 串（只包含 A,C,G,T 这 4 种字符）的一种表示法，
// 你的任务是输出该环状串的最小表示。
// 例如，
// CTCC 的最小表示是 CCCT，
// CGAGTCAGCT 的最小表示为 AGCTCGAGTC。

// #include <iostream>
// #include <string>
// #include <fstream>
// #define LOCAL
// using namespace std;
// int main()
// {
// #ifdef LOCAL
//     ifstream cin("in.txt");
//     ofstream cout("out.txt");
// #endif
//     string s;
//     int T;
//     cin >> T;
//     while (T--)
//     {
//         cin >> s;
//         int len = s.length();
//         // 在 s 后追加自身，包含所有表示法
//         s += s;
//         // 在新 s 中找最小表示
//         int min = 0,  // 当前最小表示的首字符下标
//             r = 1,    // min 右边字符串的首字符下标
//             flag = 0; // 标记特殊情况
//         while (r < len)
//         {
//             if (s[min] < s[r])
//                 ++r;
//             else if (s[min] > s[r])
//                 min = r++;
//             else
//                 for (int i = 1; i <= len; ++i)
//                     if (s[min + i] < s[r + i])
//                     {
//                         ++r;
//                         break;
//                     }
//                     else if (s[min + i] > s[r + i])
//                     {
//                         min = r++;
//                         break;
//                     }
//                     else
//                         ++flag; // 防止 CCCC 这种特殊情况
//             if (flag == len)
//                 break;
//         }
//         cout << s.substr(min, len) << endl;
//     }
//     return 0;
// }

// 课本答案
#include <stdio.h>
#include <string.h>
#define maxn 105
// 环状串 s 的表示法 p 是否比表示法 q 的字典序小
int less(const char *s, int p, int q)
{
    int n = strlen(s);
    for (int i = 0; i < n; i++)
        if (s[(p + i) % n] != s[(q + i) % n])
            return s[(p + i) % n] < s[(q + i) % n];
    return 0; // 相等
}
int main()
{
    int T;
    char s[maxn];
    scanf("%d", &T);
    while (T--)
    {
        scanf("%s", s);
        int ans = 0;
        int n = strlen(s);
        for (int i = 1; i < n; i++)
            if (less(s, i, ans))
                ans = i;
        for (int i = 0; i < n; i++)
            putchar(s[(i + ans) % n]);
        putchar('\n');
    }
    return 0;
}